import { apiClient, apiRoutes } from "../../utils/api";
const app = getApp()

Page({
  data: {
    devices: [],
    values: [],
    role:wx.getStorageSync('role')
  },
  /**
   * 获取设备列表和最新数据
   */
  fetchDevices: function () {
    // 获取所有设备
    const url = apiRoutes.latest_data
    console.log(url)
    apiClient.get(url)
      .then((res) => {
        console.log(res.data)
        // const devices = this.processDeviceData(res.data)
        this.setData({
          devices: res.data
        });
      })
      .catch((error) => {
        console.error('获取设备数据失败', error);
      });
  },

  /**
   * 处理设备数据，添加最新数据和图片路径
   * @param {Array} devices 设备列表
   * @param {Array} deviceDatas 设备最新数据列表
   * @returns {Array} 处理后的设备列表
   */
  processDeviceData: function (devices) {
    return devices.map((device) => {
      // 根据设备名称确定设备类型并设置图片路径
      device.imagePath = this.getDeviceImagePath(device.name);
      return device;
    });
  },
  // 格式化timestamp的方法
  formatTimestamp: function (timestamp) {
    const date = new Date(timestamp);
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hours = date.getHours().toString().padStart(2, '0');
    const minutes = date.getMinutes().toString().padStart(2, '0');
    const seconds = date.getSeconds().toString().padStart(2, '0');
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  },

  // 四舍五入value到2位小数的方法
  roundValue: function (value) {
    const rounded = Number(value).toFixed(2);
    // 如果没有小数则不显示小数，只有一位小数也只显示一位小数
    return isNaN(rounded) ? value : rounded;
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.fetchDevices();
    // 设置定时器，每10秒请求一次
    this.interval = setInterval(() => {
      this.fetchDevices();
    }, 10000);
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    // 清除定时器
    clearInterval(this.interval);
  },


  onHide() {
    // 清除定时器
    clearInterval(this.interval);
  },
});